package com.qf.commons.base.result;

/**
 * author Ken
 * create_time 2022/11/21
 */
public class Rs {

    /**
     * 创建一个成功的R对象
     * @return
     */
    public static R create(){
        return new R()
                .setCode(Codes.SUCC.getCode())
                .setMsg(Codes.SUCC.getMsg());
    }

    /**
     * 创建一个拥有返回数据的R对象
     * @return
     */
    public static <T> R<T> create(T data){
        return new R<T>()
                .setCode(Codes.SUCC.getCode())
                .setMsg(Codes.SUCC.getMsg())
                .setData(data);
    }

    /**
     * 创建一个失败的R对象
     * @return
     */
    public static R createFail(Codes codes){
        return new R()
                .setCode(codes.getCode())
                .setMsg(codes.getMsg());
    }

    /**
     * 带数据的失败结果
     * @param codes
     * @param data
     * @return
     * @param <T>
     */
    public static <T> R<T> createFail(Codes codes, T data){
        return new R<T>()
                .setCode(codes.getCode())
                .setMsg(codes.getMsg())
                .setData(data);
    }
}
